package com.captjack.netty;

import java.util.Arrays;
import java.util.Collection;
import java.util.OptionalDouble;

/**
 * @author admin
 */
public class Test {

    public static void main(String[] args) {


    }

    /**
     * @param doubles 集合
     * @return 平均值
     */
    public static <T extends Number> Double calculateAverage(T[] doubles) {
        return calculateAverage(Arrays.asList(doubles));
    }

    /**
     * @param collection 集合
     * @return 平均值
     */
    private static Double calculateAverage(Collection<? extends Number> collection) {
        // 计算返回
        return collection.stream().mapToDouble(Number::doubleValue).average().orElse(0D);
    }

    /**
     * @param collection 集合
     * @return 平均值
     */
    private static <T extends Number> Double calculateMax(Collection<T> collection) {
        // 计算返回
        return collection.stream().mapToDouble(Number::doubleValue).max().orElse(0D);
    }

    /**
     * @param collection 集合
     * @return 平均值
     */
    private static <T extends Number> Double calculateMin(Collection<T> collection) {
        // 计算返回
        return collection.stream().mapToDouble(Number::doubleValue).min().orElse(0D);
    }

}
